class Solution2 {
    public boolean checkPartitioning(String s) {
        int len = s.length() ;
        boolean[][] dp = new boolean[len][len] ; 
        char[] arr = s.toCharArray() ;
        for(int i=len-1; i >= 0 ; i --){
            for(int j=i ; j < len ; j ++){
                if(arr[i]==arr[j]){
                    dp[i][j] = i==j?true:(i+1==j?true:(dp[i+1][j-1]?true:false));
                }
            }
        }
        for(int i=1 ; i < len-1 ; i ++){
            for(int j=i ; j < len-1 ; j ++ ){
               if(dp[0][i-1] && dp[i][j] && dp[j+1][len-1]){
                return true ;
               }
            }
        }
return false ;

    }
}